<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 限定以 root 为根的子树节点必须满足 max.val > root.val > min.val
    var isValidBST = function (root, min = -Infinity, max = Infinity) {
      // 如果是空节点
      if (!root) return true;
      // 当前节点的值大于最小值，小于最大值；（换句话说，当前节点的值大于左子树所有节点的值，小于右子树中所有节点的值 ）
      // 限定左子树的最大值是 root.val，右子树的最小值是 root.val
      return (
        root.val > min &&
        root.val < max &&
        isValidBST(root.left, min, root.val) &&
        isValidBST(root.right, root.val, max)
      );
    };
    console.log(isValidBST(root = [5, 1, 4, null, null, 3, 6]))
  </script>
</body>

</html>